package edu.service;

import edu.vo.RolePermission;
import edu.vo.ID.RolePermissionId;

import java.util.List;
import java.util.Optional;

public interface RolePermissionService {
    /**
     * 保存角色权限关联信息
     * @param rolePermission 角色权限关联对象
     * @return 保存后的角色权限关联对象
     */
    RolePermission saveRolePermission(RolePermission rolePermission);

    /**
     * 根据ID获取角色权限关联信息
     * @param id 角色权限关联ID
     * @return 角色权限关联对象的Optional包装
     */
    Optional<RolePermission> getRolePermissionById(RolePermissionId id);

    /**
     * 获取所有角色权限关联信息
     * @return 角色权限关联列表
     */
    List<RolePermission> getAllRolePermissions();

    /**
     * 根据ID删除角色权限关联信息
     * @param id 角色权限关联ID
     */
    void deleteRolePermissionById(RolePermissionId id);

    /**
     * 更新角色权限关联信息
     * @param id 角色权限关联ID
     * @param rolePermission 新的角色权限关联信息
     * @return 更新后的角色权限关联对象
     */
    RolePermission updateRolePermission(RolePermissionId id, RolePermission rolePermission);
}